/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upf.grupE.interftest;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;
import javax.media.*;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
/**
 *
 * @author Oscar
 */
public class RepMulti extends JFrame {
 JFrame marc;
    Player reproductor;
	public RepMulti(){

	/*Definim el marc que sera el nostre reproductor multimedia*/
	/*El definim coma  final, perque no pugui ser modificat*/
   marc = new JFrame();
    }

	public void Play(String a) throws Exception{
	/*Definim un objecte URL, per a pdoer obrir l'arxiu correctement*/
		URL url = new URL( a );

	/*Creem el reproductor a traves de la URL, el definim tamb com a final perque no
	pugui ser modificar*/
    reproductor = Manager.createPlayer( url );


		/*Definim conttrolador, que anira actualizant el recorregut aixi com
		el video en reproduccio*/
		reproductor.addControllerListener( new ControllerListener() {
			public void controllerUpdate( ControllerEvent ce ) {
				if ( ce instanceof RealizeCompleteEvent )
				{

					/* El component visual reprodeux el contingut del video*/
					Component visual = reproductor.getVisualComponent();

					/*Amb el component control, controlem la reproduccio*/
					Component control = reproductor.getControlPanelComponent();
					if ( visual != null )

					/*Afegim el contingut audiovisual al centre, i el de control abaix*/
						marc.getContentPane().add( visual, "Center" );
					marc.getContentPane().add( control, "South" );

					/*Obrim la frame i la fem visible*/
					marc.pack();
                    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

                    marc.setLocation(dim.width/4, dim.height/4);
                    marc.setResizable(false);
					marc.setVisible( true );

					/*Iniciem la reproduccio*/
					reproductor.start();
				}
			}
		});

		/*Situem el reproductor a lestat realize, a partir daki el reproductor sap
		les dades ir ecursos que necessita*/
		reproductor.realize();
	}

    public void Stop(){
        if(reproductor!=null){
        reproductor.stop();
        marc.setVisible(false);}
    }
}
